Перейти к основному содержимому

ComponentManager

Управляет компонентами и позволяет вам создавать собственные компоненты.

ПРИМЕЧАНИЕ: Компонент — это то, что может взаимодействовать с компьютером, а interactable — интерактивный элемент со скриптом в вашем аддоне.


Функции

toComponent

:::danger[Это важно!] У нас есть система банов в нашем моде. Для того чтобы аддоны работали с ней, все interactables и компоненты ДОЛЖНЫ использовать эту функцию.

Если вы этого не сделаете и мы это заметим, мы предупредим вас об этой проблеме. Игнорирование этого предупреждения приведет к БАНУ аддона. :::

sm.scrapcomputers.componentManager.toComponent( classData, componentType, isAComponent, automaticRefreshGen )

Подключает ваш класс, чтобы вы могли легко создавать компоненты. Для разработчиков аддонов это обязательно.

  • Для компонентов: Все переменные используются, а isAComponent должен быть true.
  • Для interactables: То же самое, что и для компонентов, но componentType должен быть nil, а isAComponent — false.

Аргументы:

  • classData [ ShapeClass ] Класс компонента или interactable.
  • componentType [ string ] Тип компонента. Убедитесь, что он не конфликтует с другими аддонами или самим модом.
  • isAComponent [ boolean ] Установите это значение в true, если ваш interactable является компонентом!
  • automaticRefreshGen [ boolean? ] Если true или nil, то генерируется функция onRefresh (По умолчанию true).
Пример использования:

Если вы не знаете, как пользоваться этой функцией, то это краткое руководство поможет вам.

Добавьте эти строчки:

-- Для компонентов
sm.scrapcomputers.componentManager.toComponent( yourClass, "YourComponentType", true )

-- Для interactables
sm.scrapcomputers.componentManager.toComponent( yourClass, "YourComponentType", false )

-- НЕ ПИШИТЕ НИКАКОЙ КОД НИЖЕ!!!

getComponents

sm.scrapcomputers.componentManager.getComponents( componentType, interactable, viaChildren, flags, getPrivateData )

Получает все подключенные компоненты.

Аргументы:

  • componentType [ string ] Тип компонента.
  • interactable [ interactable ] Interactable ??.
  • viaChildren [ boolean ] Нужно ли получать компоненты через дочерние или родительские компоненты.
  • flags [ integer? ] Флаги для получения компонентов.
  • getPrivateData [ boolean? ] Если вы установите для этого параметра значение true, вы получите данные из компонентов, которые обычно недоступны для использования в API компьютера.

Возвращает:

  • [ table ] Таблица всех подключенных компонентов.